perm filename PRIMES.LST[S1,ALS] blob
sn#392599 filedate 1978-11-07 generic text, type T, neo UTF8
PASCAL COMPILATION LIST PRODUCED BY PASCAL VERSION FROM 30-DEC-76 ON 07-NOV-78 AT 14:12:56
10 COMMENT VALID 00002 PAGES
20 C REC PAGE DESCRIPTION
30 C00001 00001
40 C00002 00002 (*$L+*)
50 C00004 ENDMK
60 C;
70 (*$L+*)
000140' 80 PROGRAM PRIMES(OUTPUT); (* MODIFIED COPY FROM WIRTH P 54* FOR THE PDP-10*)
000140' 90 CONST
000140' 100 WDLENGTH = 36; MAXBIT = 35; W = 100; (* TO FIND PRIMES BELOW 3600*)
000140' 110 VAR
000140' 120 SIEVE,PRIMES : ARRAY[0..W] OF SET OF 0..MAXBIT;
000764' 130 NEXT : RECORD WORD,BIT : INTEGER END;
000766' 140 J,K,T,C : INTEGER;
000772' 150 EMPTY : BOOLEAN;
000773' 160 BEGIN
400000' 170 FOR T := 0 TO W DO BEGIN SIEVE[T] := [0..MAXBIT]; PRIMES[T] := [] END;
400036' 180 SIEVE[0] := SIEVE[0] - [0]; NEXT.WORD := 0; NEXT.BIT := 1; EMPTY := FALSE;
400050' 190 WITH NEXT DO REPEAT
400050' 200 WHILE NOT (BIT IN SIEVE[WORD]) DO BIT := SUCC(BIT);
400072' 210 PRIMES[WORD] := PRIMES[WORD] + [BIT];
400120' 220 C := 2*BIT + 1; J := BIT; K := WORD;
400130' 230 WHILE K<=W DO BEGIN
400133' 240 SIEVE[K] := SIEVE[K] - [J]; K := K + WORD*2; J := J+C;
400172' 250 WHILE J>MAXBIT DO BEGIN K :=K+1; J :=J - WDLENGTH END
400203' 260 END;
400205' 270 IF SIEVE[WORD] = [] THEN BEGIN EMPTY := TRUE; BIT := 0 END;
400225' 280 WHILE EMPTY AND (WORD<W) DO BEGIN
400233' 290 WORD := WORD + 1; EMPTY := SIEVE[WORD] = [] END
400255' 300 UNTIL EMPTY;
400260' 310 END.
400000' POINT 7, 00000 (01),-1 POINT 7, 00000 (01), 6 POINT 7, 00000 (01),13 POINT 7, 00000 (01),20
400004' POINT 7, 00000 (01),27 POINT 7, 00000 (01),34
400004' HRRZI 02, 000000 MOVEM 02, 000767'
400010' CAILE 02, 000144 JRST 00, 400036' MOVE 02, 000767' CAIL 02, 000000
400014' CAILE 02, 000144 PUSHJ 17, 000000 E IMULI 02, 000002 MOVE 05, 000000 C
400020' MOVE 04, 000000 C MOVEM 05, 000453'(02) MOVEM 04, 000452'(02) MOVE 02, 000767'
400024' CAIL 02, 000000 CAILE 02, 000144 PUSHJ 17, 400015' E IMULI 02, 000002
400030' MOVE 05, 000000 C MOVE 04, 000000 C MOVEM 05, 000141'(02) MOVEM 04, 000140'(02)
400034' AOS 02, 000767' JRST 00, 400010' MOVE 03, 000453' MOVE 02, 000452'
400040' ANDCM 03, 000000 C ANDCM 02, 000000 C MOVEM 03, 000453' MOVEM 02, 000452'
400044' SETZM 00, 000765' HRRZI 02, 000001 MOVEM 02, 000764' SETZM 00, 000772'
400050' HRRZI 02, 000001 MOVE 03, 000765' CAIL 03, 000000 CAILE 03, 000144
400054' PUSHJ 17, 400026' E IMULI 03, 000002 MOVE 05, 000764' MOVE 04, 000453'(03)
400060' MOVE 03, 000452'(03) LSHC 03, 000000 (05) CAIL 03, 000000 SETZ 02, 000000
400064' ANDCAI 02, 000001 JUMPE 02, 400072' MOVE 02, 000764' AOJ 02, 000000
400070' MOVEM 02, 000764' JRST 00, 400050' MOVE 02, 000765' CAIL 02, 000000
400074' CAILE 02, 000144 PUSHJ 17, 400054' E IMULI 02, 000002 MOVE 04, 000765'
400100' CAIL 04, 000000 CAILE 04, 000144 PUSHJ 17, 400075' E IMULI 04, 000002
400104' MOVE 10, 000764' HRLZI 06, 400000 SETZ 07, 000000 CAIL 10, 000000
400110' CAILE 10, 000107 PUSHJ 17, 000000 E MOVN 10, 000010 LSHC 06, 000000 (10)
400114' IOR 07, 000141'(04) IOR 06, 000140'(04) MOVEM 07, 000141'(02) MOVEM 06, 000140'(02)
400120' HRRZI 02, 000002 IMUL 02, 000764' ADDI 02, 000001 MOVEM 02, 000766'
400124' MOVE 02, 000764' MOVEM 02, 000771' MOVE 02, 000765' MOVEM 02, 000770'
400130' MOVE 02, 000770' CAILE 02, 000144 JRST 00, 400205' MOVE 02, 000770'
400134' CAIL 02, 000000 CAILE 02, 000144 PUSHJ 17, 400102' E IMULI 02, 000002
400140' MOVE 04, 000770' CAIL 04, 000000 CAILE 04, 000144 PUSHJ 17, 400136' E
400144' IMULI 04, 000002 MOVE 05, 000453'(04) MOVE 04, 000452'(04) MOVE 10, 000771'
400150' HRLZI 06, 400000 SETZ 07, 000000 CAIL 10, 000000 CAILE 10, 000107
400154' PUSHJ 17, 400111' E MOVN 10, 000010 LSHC 06, 000000 (10) ANDCM 05, 000007
400160' ANDCM 04, 000006 MOVEM 05, 000453'(02) MOVEM 04, 000452'(02) MOVE 02, 000765'
400164' IMULI 02, 000002 ADD 02, 000770' MOVEM 02, 000770' MOVE 02, 000771'
400170' ADD 02, 000766' MOVEM 02, 000771' MOVE 02, 000771' CAIG 02, 000043
400174' JRST 00, 400204' MOVE 02, 000770' ADDI 02, 000001 MOVEM 02, 000770'
400200' MOVE 02, 000771' SUBI 02, 000044 MOVEM 02, 000771' JRST 00, 400172'
400204' JRST 00, 400130' MOVE 02, 000765' CAIL 02, 000000 CAILE 02, 000144
400210' PUSHJ 17, 400143' E IMULI 02, 000002 MOVE 03, 000453'(02) MOVE 02, 000452'(02)
400214' MOVE 05, 400030' C MOVE 04, 400031' C CAME 02, 000004 JRST 00, 400221'
400220' CAME 03, 000005 JRST 00, 400225' HRRZI 02, 000001 MOVEM 02, 000772'
400224' SETZM 00, 000764' HRRZI 02, 000001 MOVE 03, 000765' CAIL 03, 000144
400230' SETZ 02, 000000 AND 02, 000772' JUMPE 02, 400256' MOVE 02, 000765'
400234' ADDI 02, 000001 MOVEM 02, 000765' MOVE 02, 000765' CAIL 02, 000000
400240' CAILE 02, 000144 PUSHJ 17, 400210' E IMULI 02, 000002 HRRZI 04, 000001
400244' MOVE 03, 000453'(02) MOVE 02, 000452'(02) MOVE 06, 400214' C MOVE 05, 400215' C
400250' CAME 02, 000005 JRST 00, 400253' CAME 03, 000006 SETZ 04, 000000
400254' MOVEM 04, 000772' JRST 00, 400225' MOVE 02, 000772' JUMPE 02, 400050'
400260' HRRZI 02, 000112' PUSHJ 17, 000000 E HRRZI 02, 000064' PUSHJ 17, 400261' E
400264' HRRZI 02, 000036' PUSHJ 17, 400263' E HRRZI 02, 000010' PUSHJ 17, 400265' E
400270' JRST 00, 000000 E JFCL 00, 000000 HLRZ 16, 000120 HRLI 16, 000000 (16)
400274' HRRI 17, 000001 (16) HRRZ 01, 400271' CAMG 01, 000044 JRST 00, 400302'
400300' CALLI 01, 000011 PUSHJ 17, 000000 E MOVE 15, 000044 CAIG 15, 000040 (17)
400304' PUSHJ 17, 000000 E HRLM 15, 000120 SUBI 15, 000001 HRLI 17, 400000
400310' CALLI 00, 000000 HRRZI 01, 000110 CALLI 01, 000016 HRRZI 04, 000000 C
400314' HRRZI 02, 000036' HRRZI 03, 000000 C SETZ 05, 000000 PUSHJ 17, 000000 E
400320' SETZ 03, 000000 SETZ 04, 000000 SETZ 05, 000000 SETZ 06, 000000
400324' HRRZI 02, 000112' SKIPN 00, 000013 (02) PUSHJ 17, 000000 E HRRZM 16, 000143
400330' SKIPE 00, 000146 XCT 00, 000146 JRST 00, 400006'
400330' [ 777777777777]
400334' [ 000000000000] [ 000000000000] [ 000000000000] [ 400000000000]
400340' [ 000000000000] [ 'PRIME'] [ 'S '] [ 'OUTPU']
400344' [ 'T ']
000000' 000000 000000 000000 000000 000000 000000 000000 000000
000004' 000000 000000 000000 000000 000000 000000 000000 000000
LINK-CHAIN(S) : 400020'400333' 400017'400334' 400247'400335' 400246'400336'
400041'400337' 400040'400340' 400313'400341' 400315'400343'
000110' 000000 000137' 000000 000000
000114' 000000 000000 050140 000123' 076140 000126' 077140 000126'
000120' 056140 000000 057140 000000 070140 000000 000000 000000
000124' 646471 000000 000000 000000 646471 576564 606564 000000
000130' 000000 000000 000000 000000 000000 000000 000000 000000
000134' 000000 000000 000000 000000 777777 000137' 000000 000000
000064' 000000 000111' 000000 000000 000000 000000 050100 000075'
000070' 076100 000100' 077100 000100' 056100 000000 057100 000000
000074' 070100 000000 000000 000000 646471 000000 000000 000000
000100' 646471 000000 000000 000000 000000 000000 000000 000000
000104' 000000 000000 000000 000000 000000 000000 000000 000000
000110' 777777 000111' 000000 000000
000034' 000000 000063' 000000 000000
000040' 000000 000000 050040 000047' 076040 000052' 077040 000052'
000044' 056040 000000 057040 000000 070040 000000 000000 000000
000050' 446353 000000 000000 000000 576564 606564 000000 000000
000054' 000000 000000 000000 000000 000000 000000 000000 000000
000060' 000000 000000 000000 000000 777777 000063' 000000 000000
000010' 000000 000035' 000000 000000 000000 000000 050000 000021'
000014' 076000 000024' 077000 000024' 056000 000000 057000 000000
000020' 070000 000000 000000 000000 446353 000000 000000 000000
000024' 515660 656400 000000 000000 000000 000000 000000 000000
000030' 000000 000000 000000 000000 000000 000000 000000 000000
000034' 777777 000035' 000000 000000
ENTRY-POINT(S) : PRIMES 400271'
ENTRY-SYMBOL(S) : TTYOUT 000112' TTY 000064'
OUTPUT 000036' INPUT 000010'
EXTERN-SYMBOL(S): CORERR 400304' INXERR 400241'
SETERR 400154' NOCORE 400301'
END 400270' GETPAR 400317'
REWRIT 400326' CLSFIL 400267'
OVERF. 000125
LINK-LIBRARIE(S): PASLIB 000000 000000 SYS
START-ADDRESS : 400271'
HIGHSEG-BREAK : 400345'
LOWSEG-BREAK : 000773'
0 ERROR(S) DETECTED
HIGHSEG: 0K + 229 WORD(S)
LOWSEG : 0K + 507 WORD(S)
RUNTIME: 0: 0.297